package com.gem.day18;

//静态导入
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * 本类用来演示自定义注解
 * 
 * 关键字:@interface
 * 
 * @author easonsy
 * 2020年8月13日 下午2:54:29
 */
//@Target是元注解,作用是用来表示修饰的注解使用的范围,如果没有指定,则表示可以修饰所有
//@Target({ ElementType.TYPE, ElementType.METHOD })
@Target({ TYPE, METHOD })
//保持力
//CLASS表示记录在类文件中,但是运行时被丢弃
//SOURCE表示记录在源文件中,编译时就丢弃了
//RUNTIME表示记录在类文件中,并且运行时保留
//@Retention(RetentionPolicy.RUNTIME)
@Retention(RUNTIME)
public @interface MyAnnotation {
	/*
	 * 属性
	 * 注解中只有属性没有方法,属性必须是基本类型,字符串,Class,注释,
	 * 枚举或者以上类型的一维数组类型
	 * 注意: 属性默认名称为value,所以可以省略属性名
	 */
	String value();

	//属性可以提供默认值
	int[] numbers() default { 1, 2, 3 };
}
